package com.haoxi.gateway.util;
import java.text.*;
import java.util.*;
/**
 * �ṩһ���ַ���Date֮���ת��
 */

public class DateFormat
{
   /**
    * ���ַ�ת����java.util.Date����,����:
    * stringToDate("2001-12-11","yyyy-mm-dd")=һ��ʱ��Ϊ2001��12��11�յ�java.util.Date����
    * @param org  ��ת����java.util.Date������ַ�
    * @param orgFormat һ��������"yyyy-mm-dd"���ַ�
    * @return ת�����Date����
    */
   public static Date stringToDate(String org,String orgFormat)
   {
     try
     {
       SimpleDateFormat format=new SimpleDateFormat(orgFormat);
       return format.parse(org);
     }catch(Exception e)
     {
       return null;
     }
   }
  /**
   * �������͵��ַ��һ�ָ�ʽת������һ�ָ�ʽ������
   * stringFormat("2001-12-11","yyyy-MM-dd","yyyy/MM/dd")="2001/12/11";
   * stringFormat("2001-12-11","yyyy-MM-dd",MM/dd/yyyy")="/11/12/2001"
   * stringFormat("2001-12-11","yyyy/MM/dd","MM/dd/yyyy")=null
   * @param date  ��ת����ʽ�������͵��ַ�
   * @param orgFormat Դ��ʽ
   * @param destFormat Ŀ�ĸ�ʽ
   * @return ��Ŀ�ĸ�ʽ���������͵��ַ�,��Ϊnull��ʾ����ת��
   */
  public static String stringFormat(String date,String orgFormat,String destFormat)
  {
     try
     {
       SimpleDateFormat tmpOrg=new SimpleDateFormat(orgFormat);
       SimpleDateFormat tmpDest=new SimpleDateFormat(destFormat);
       Date orgDate=tmpOrg.parse(date);
       return tmpDest.format(orgDate);
     }catch(Exception e)
     {
       e.printStackTrace();
       return null;
     }
  }
  /**
   * ������ת�����ַ�,����,���統ǰʱ����2001��12��11��:
   * java.util.Date currentDate=java.util.Calendar.getInstance().getTime();
   * dateFormat(currentDate,"yyyy-MM-dd","yyyy/MM/dd")="2001-12-11";
   * dateFormat(currentDate,"yyyy-BB-dd","yyyy/MM/dd")="2001/12/11";
   * @param date ��ת��������
   * @param format ��ת���ĸ�ʽ
   * @param defaultFormat ȱʡ�ĸ�ʽ����date����ת����format��ʽʱ��defaultForamt��ʽ,��defaultFormatΪnull,��ϵͳĬ��Ϊ"yyyy-MM-dd"��ʽ
   * @return ����ת������ַ�,��Ϊnull��ʾdate����ת�����ַ�
   */
  public static String dateFormat(Date date,String format,String defaultFormat)
  {
    try
    {
      SimpleDateFormat tmp=new SimpleDateFormat(format);
      String returnValue;
      try
      {
        returnValue=tmp.format(date);
      }catch(Exception e)
      {
        if(defaultFormat==null)
          defaultFormat="yyyy-MM-dd";
        tmp=new SimpleDateFormat(defaultFormat);
        returnValue=tmp.format(date);
      }
      return returnValue;
    }catch(Exception e)
    {
      return null;
    }
  }
  /**
   * ������ת�����ַ�,�˷���ֻ�Ǽ򵥵ĵ���dateFormat(date,format,null),����:
   * ���統ǰʱ����2001��12��11��
   * java.util.Date currentDate=java.util.Calendar.getInstance().getTime();
   * dateFormat(currentDate,"yyyy/MM/dd")="2001/12/11";
   * dateFormat(currentDate,"yyyy-BB-dd")="2001-12-11";
   * @param date ��ת��������
   * @param format ��ת���ĸ�ʽ
   * @return ����ת������ַ�,��Ϊnull��ʾdate����ת�����ַ�
   */
  public static String dateFormat(Date date,String format)
  {
    return dateFormat(date,format,null);
  }
  /**
   * ȡ�õ�ǰʱ�䣬��ת������Ӧ��ʽ���ַ�����
   * ��ǰʱ����2001��12��11��12��13��14��
   * getCurrentTime("yyyy-MM-dd HH:mm:ss")="2001-12-11 12:13:14"
   * @param format ��Ӧ��ʽ�磺"yyyy-MM-dd HH:mm:ss"
   * @return format��ʽ�ĵ�ǰʱ��,��Ϊnull��ʾformat��ʽ���ԣ�
   */
  public static String getCurrentTime(String format)
  {
    Date currentDate=Calendar.getInstance().getTime();
    return dateFormat(currentDate,format);
  }
  /**
   * ȡ�õ�ǰʱ�䣬��ת����"yyyy-MM-dd HH:mm:ss"��ʽ,�˷���ֻ�Ǽ򵥵�
   * ����getCurrentTime("yyyy-MM-dd HH:mm:ss")������
   * ��ǰʱ����2001��12��11��12��13��14��
   * getCurrentTime()="2001-12-11 12:13:14"
   * @return "yyyy-MM-dd HH:mm:ss"��ʽ�ĵ�ǰʱ��
   */
  public static String getCurrentTime()
  {
    return getCurrentTime("yyyy-MM-dd HH:mm:ss");
  }
}